<?php
require_once 'Mueble.php';
require_once 'Cajon.php';
require_once 'Buzo.php';
require_once 'Media.php';
require_once 'RopaInterior.php';
require_once 'Camisa.php';
require_once 'Cofre.php';
require_once 'Dinero.php';

abstract class Index
{
    public static function main()
    {
        /* "Tenemos un mueble que tiene 4 cajones.
         * En el primer cajón guardaremos las medias de colores,
         * en el segundo cajón la ropa interior (masculina y femenina),
         * en el tercer cajón los buzos de lana y en el cuarto las camisas.
         * Por miedo a los robos guardaremos un cofre pequeño que
         * contendrá 100 USD de nuestros ahorros, escondidos entre
         * la ropa, en alguno de los cajones a nuestra elección. "*/

        $mueble = new Mueble();

        $cajon1 = new Cajon();
        $cajon2 = new Cajon();
        $cajon3 = new Cajon();
        $cajon4 = new Cajon();

        /* Puedo agregar los cajones al mueble y seguir trabajando con ellos
         * de forma independiente, la relación ya está creada, cuando
         * recorra los elementos del mueble obtendré la referencia
         * al mismo cajón que estoy usando "fuera" del mueble */

        $mueble->addCajon($cajon1);
        $mueble->addCajon($cajon2);
        $mueble->addCajon($cajon3);
        $mueble->addCajon($cajon4);

        /* Agrego elementos a los cajones */

        $cajon1->addMedia(new Media('roja'));
        $cajon1->addMedia(new Media('negra'));

        $cajon2->addRopaInterior(new RopaInterior('masculina'));
        $cajon2->addRopaInterior(new RopaInterior('femenina'));

        $cajon3->addBuzo(new Buzo('lana'));

        $cofre = new Cofre();
		$cofre->addDinero(new Dinero(100, 'USD'));

        $cajon3->addCofre($cofre);

        /* ver contenido */
        echo $mueble;
    }
}

Index::main();

